/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.resume.sinistre.assembler;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import fr.generali.accueilclient.resume.sinistre.builder.DtoSinistre2ResumeSinistreBuilder;
import fr.generali.accueilclient.resume.sinistre.builder.IResumeSinistreBuilder;
import fr.generali.accueilclient.resume.sinistre.builder.ResumeSinistreDirector;
import fr.generali.accueilclient.resume.sinistre.om.IResumeSinistre;
import fr.generali.refservcommuns.rce.liste.sinistres.dto.cla.DTOSinistre;

/**
 * Transforme un {@link DTOSinistre} en {@link IResumeSinistre}
 * 
 * @author Guillaume Lancelin
 */
@Component("dtoSinistre2ResumeSinistreConverter")
public class DtoSinistre2ResumeSinistreConverter implements Converter<DTOSinistre, IResumeSinistre> {

    /**
     * LOGGER
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(DtoSinistre2ResumeSinistreConverter.class);

    /**
     * {@inheritDoc}
     */
    public IResumeSinistre convert(DTOSinistre input) {

        LOGGER.info("assemble");
        IResumeSinistre sinistre = null;

        if (input != null) {

            IResumeSinistreBuilder resumeSinistreBuilder = new DtoSinistre2ResumeSinistreBuilder(input);
            ResumeSinistreDirector resumeSinistreDirector = new ResumeSinistreDirector(resumeSinistreBuilder);
            resumeSinistreDirector.constructResumeSinistre();
            sinistre = resumeSinistreDirector.getResumeSinistre();
        }

        return sinistre;
    }

}
